package cn.unknownerror.ueteam.team;

import java.util.List;
import java.util.UUID;

public interface ITeam {

    /**
     * @return 该队伍的最大人数。
     */
    int getMaxmember();

    /**
     * @param i 需要设置的最大人数。
     */
    void setMaxmember(int i) throws TeamException;

    /**
     * @return 队长玩家的UUID
     */
    UUID getCaptain();

    /**
     * @param uuid 需要从队伍里移除的玩家
     */
    void removeMember(UUID uuid);

    /**
     * @return 是否有成功加入队伍。重复加入或者队伍人数达到最大人数时返回false。
     * @param uuid 需要向队伍里添加的玩家的UUID
     */
    boolean addMember(UUID uuid);

    /**
     * @return 队伍玩家列表的UUID
     */
    List<UUID> getMembers();

    /**
     * @param list 需要设置的玩家UUID列表
     */
    void setMembers(List<UUID> list) throws TeamException;

    /**
     * @param uuid 需要查询的玩家UUID
     * @return 是否有这个玩家
     */
    boolean hasMember(UUID uuid);

    /**
     * @return 队伍的名称
     */
    String getName();

    /**
     * @param _name 需要设置的队伍名称
     */
    void setName(String _name);

    /**
     * @return 获取这只队伍的UUID
     */
    UUID getUUID();

    /**
     * @return 队伍的状态(true 为可加入 false为不可加入)
     */
    boolean getTeamState();

    /**
     * @param state 需要设置的队伍状态(true 为可加入 false为不可加入)
     */
    void setTeamState(boolean state);

}
